/*function test(){
	for(let i=0;i<3;i++){
		alert(i);//正常弹出0,1,2
	}
	//alert(i);//控制台报错,i没有定义
	
	let a=1;
	//let a=2;//报错,不能 重复定义
}

test();
*/

let foo = 'foo';
if(true){
    console.log(foo);//报错,提示foo没有定义
    let foo = 'foo bar';
    console.log(foo);
}
//只要块级作用域内存在let命令，它所声明的变量就绑定在这个区域，不再受外部影响
//在块级作用域内如果使用let声明了某个变量，那么这个变量名必须在声明它的语句后使用，
//即使块外部的变量有与之重名的也不行